import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { DemoModule } from './demo/demo.module';
import { ListModule } from './list/list.module';
import { ConfigModule } from './config/config.mudule';
import { UserModule } from './user/user.module';
import { UploadModule } from './upload/upload.module';
import { PpModule } from './pp/pp.module';
import { SpiderModule } from './spider/spider.module';
import { GuardModule } from './guard/guard.module';
import { TestModule } from './test/test.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User1Module } from './user1/user1.module';
import { TagsModule } from './tags/tags.module';

@Module({
  imports: [
    DemoModule,
    ListModule,
    //动态模块
    ConfigModule.forRoot({
      path: '/games',
    }),
    TypeOrmModule.forRoot({
      //在根模块中导入 TypeORM 设置（通常是 app.module.ts）：
      type: 'mysql', //数据库类型
      username: 'root', //账号
      password: 'root', //密码
      host: 'localhost', //host
      port: 3306, //
      database: 'nest1', //库名
      entities: [__dirname + '/**/*.entity{.ts,.js}'], //实体文件
      synchronize: true, //synchronize字段代表是否自动将实体类同步到数据库
      retryDelay: 500, //重试连接数据库间隔
      retryAttempts: 10, //重试连接数据库的次数
      autoLoadEntities: true, //如果为true,将自动加载实体 forFeature()方法注册的每个实体都将自动添加到配置对象的实体数组中
    }),
    UserModule,
    UploadModule,
    PpModule,
    SpiderModule,
    GuardModule,
    TestModule,
    User1Module,
    TagsModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
